// js 是一门弱类型的语言
// var a = '你好世界'
// a = 10
// 在 Js 中可以给变量赋值为非定义的类型数据，但是在 ts 中是不行的

// NString * a = '你好世界'
// 强类型编程语言定义变量的时候需要添加其类型
// Nodejs执行js文件
// 以下可以执行ts文件
// ts-node 01-基础数据类型.ts 

// 在声明变量的时候如果不给其添加数据类型，默认会自动推断数据类型
// 当不知道类型该怎么写的时候，可以将鼠标移动到变量上面去看推断出的类型写法
let a: number = 100
// 定义类型的时候建议都统一小写
let b: Number = 100

let c: string = '你好春天'
// 不能将类型“number”分配给类型“string”。
// c = 10

/*
要执行 ts 文件：
1. 将 ts 转换成 js 然后执行
    a. 安装 tsc,安装命令： npm install -g typescript
    b. cd 到文件的目录中执行命令：tsc 文件名称.ts   将 ts 转换成 js 
    c. node 文件名称.js  执行被编译好的 js 文件

    npx 是使用最新的 tsc 执行编译
    npx tsc 01-基础数据类型.ts   将 ts 转换成 js 
    node 文件名称.js  执行被编译好的 js 文件

2. 用插件直接执行
    a. 安装 ts-node,安装命令：npm install -g ts-node
    b. cd 到文件的目录中执行命令：ts-node 文件名称.ts，执行运行 ts 文件
    npx ts-node 文件名称.ts，执行运行 ts 文件
*/

// ts-node 在较新版本的 Node.js (特别是 v20+) 中可能会遇到模块解析问题，因为 Node.js 对 ES 模块的支持方式发生了变化
// 配置 tsconfig.json 文件
// npx ts-node ./01-基础数据类型.ts
console.log(c);

// 定义一个布尔类型
let d: boolean = true


// 如果这么去定义一个对象的数据类型，就会无法查看到其内部属性的数据类型
// 怎么正确去定义对象的数据类呢？
let e: object = {
    name: '张三',
    age: 18,
    sex: true
}

// 类型“object”上不存在属性“name”。ts(2339)
// console.log(e.name);





